package ch.janotta.slawo.da.tables;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import ch.janotta.slawo.da.Ability;
import ch.janotta.slawo.da.Focus;
import ch.janotta.slawo.da.Talent;
import ch.janotta.slawo.da.modifier.Modifier;
import ch.janotta.slawo.da.modifier.ModifierFactory;

public abstract class ApostateStartingModifiersTable extends BackgroundStartingModifiersTable {
  private Modifier[] backgroundModifiers = new Modifier[] {
      ModifierFactory.getInstance(Ability.Willpower),
      ModifierFactory.getRandomInstance(Focus.Natural_Lore, Focus.SelfDiscipline),
      ModifierFactory.getInstance(Talent.Speak_Read_TradeTongue),
      getNonDuplicateRandomModifier(true),
      getNonDuplicateRandomModifier(false)
  };

  @Override
  public Modifier[] getAllStartingModifiers() {
    List<Modifier> allModifiers = new ArrayList<>(Arrays.asList(backgroundModifiers));
    allModifiers.addAll(getAdditionalStartingModifiers());
    return allModifiers.toArray(new Modifier[0]);
  }

  private List<Modifier> getAdditionalStartingModifiers() {
    List<Modifier> additionalModifiers = new ArrayList<>();
    return additionalModifiers;
  }
}
